Page({
  data: {
    psychologicalKnowledgeList: [], // 存储心理知识列表
    pageNum: 1, // 当前页码
    pageSize: 10, // 每页显示的数量
    moreshow: false, // 控制加载中的显示
    noMoreData: false, // 是否还有更多数据
  },

  // 页面加载时调用的函数
  onLoad: function() {
    this.loadPsychologicalKnowledge(); // 加载第一页的心理知识
  },

  // 加载心理知识接口
  loadPsychologicalKnowledge: function() {
    const that = this;
    // 显示加载中的提示
    that.setData({ moreshow: true });

    wx.request({
      url: 'http://localhost:9090/psychologicalKnowledge', // 后端分页查询接口
      method: 'GET',
      data: {
        pageNum: that.data.pageNum,
        pageSize: that.data.pageSize,
      },
      success: function(res) {
        if (res.data) {
          const knowledgeList = res.data.list || [];
          // 使用 Promise.all 确保所有图片都加载完成后再更新数据
          const imagePromises = knowledgeList.map(item => {
            return new Promise((resolve) => {
              that.getImage(item, resolve);
            });
          });

          // 等待所有图片加载完成
          Promise.all(imagePromises).then(() => {
            // 更新列表数据
            that.setData({
              psychologicalKnowledgeList: that.data.psychologicalKnowledgeList.concat(knowledgeList),
              pageNum: that.data.pageNum + 1, // 下一页
              noMoreData: knowledgeList.length < that.data.pageSize, // 判断是否还有更多数据
            });
          });
        }
      },
      fail: function() {
        wx.showToast({
          title: '加载失败',
          icon: 'none'
        });
      },
      complete: function() {
        // 隐藏加载中的提示
        that.setData({ moreshow: false });
      }
    });
  },

  // 获取图片并转为 base64
  getImage: function(item, callback) {
    const that = this;
    wx.request({
      url: 'http://localhost:9090/file/download', // 图片回显接口
      method: 'GET',
      data: {
        fileName: item.image, // 图片名
      },
      success: function(res) {
        // 获取到图片的 base64 编码后，更新图片数据
        if (res.data) {
          item.image = 'data:image/png;base64,' + res.data; // 图片转为 base64 格式
        }
        console.log(item.image);
        callback(); // 调用回调函数，表示图片加载完成
      },
      fail: function() {
        wx.showToast({
          title: '图片加载失败',
          icon: 'none'
        });
        callback(); // 即使失败，也调用回调函数，避免阻塞后续操作
      }
    });
  },

  // 下拉加载更多
  onReachBottom: function() {
    if (!this.data.noMoreData) {
      this.loadPsychologicalKnowledge(); // 加载下一页数据
    }
  },

  // 跳转到心理知识详情页面
  toPsychologicalDetail: function(e) {
    
    const index = e.currentTarget.dataset.index; // 获取点击的条目索引
    const selectedItem = this.data.psychologicalKnowledgeList[index]; // 获取点击的条目数据
    wx.setStorageSync("psychologicalKnowledgeDetail", selectedItem); // 将数据存储到本地
    wx.navigateTo({
      url: '../xinlizhishi/xinlizhishidetail/xinlizhishidetail', // 跳转到详情页面
    });
  }
});
